var GameManager = require('geoGameManager');
var AudioManager = require('geoAudioManager');
var UIManager = require('geoUIManager');

cc.Class({
    extends: cc.Component,

    properties: {
        /**
         * 使用'this.audio.playXXXX()'进行各种音频播放
         */
        audio: {
            get: () => {
                return AudioManager.Singleton;
            },
            visible: false,
        },
        /**
         * 通过data在场景之间交互数据
         * 禁止使用'this.data='这种形式
         * 要是用'this.data.xxxx='这种形式
         */
        data: {
            get: function() {
                if (GameManager.Singleton)
                    return GameManager.Singleton.data;
                return null;
            },
            visible: false,
        },
        /**
         * 获取UIManager实例
         */
        ui:{
            get: function() {
                return UIManager.Singleton;
            },
            visible: false,
        },
        topBar:{
            get: function() {
                return this._topBar;
                // if (this._topBar != null)
                //     return this._topBar;
                // else {
                //     this._topBar = this.ui.openTopBar();
                //     return this._topBar;
                // }
            },
            visible: false,
        },
        showTopBarOnLoad:{
            default: false,
            tooltip:'是否默认显示顶部公共栏',
        }
    },

    onLoad(){
        if (this.showTopBarOnLoad === true)
            this._topBar = this.ui.openTopBar();
    },
    /**
     * 开启或停用交互屏蔽
     * @param {bool} bMask 
     */
    maskInteraction(bMask){
        this.ui.maskInteraction(this.node, bMask);
    },
    /**
     * 子类需要调用父类方法
     */
    // onDestroy(){
    //     // 关掉所有音乐
    //     this.audio.stopAll();
    // }
});
